// 将请求的目录文件放在view中
var express = require('express')
var template = require('art-template')
var bodyParser = require('body-parser') 

var comments = [
    {
        name: '张三000',
        message: '今天天气不错',
        dateTime: '2015-10-16'
    },
    {
        name: '张三1',
        message: '今天天气不错1',
        dateTime: '2015-10-16'
    },
    {
        name: '张三2',
        message: '今天天气不错2',
        dateTime: '2015-10-16'
    },
    {
        name: '张三3',
        message: '今天天气不错3',
        dateTime: '2015-10-16'
    },
    {
        name: '张三4',
        message: '今天天气不错4',
        dateTime: '2015-10-16'
    }
]

var app = express();

// 配置使用art-template
// 第一个参数表示，当渲染以.art结尾文件的时候，使用art-template模板引擎
// express-art-template 是专门用来在express中把art-template整合到Express中
app.engine('html', require('express-art-template'));

// 配置body-parser(用来解析post请求体)
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())

app.use('/public/', express.static('./public/'))


//  如果想要修改默认views 则可以
// app.set('views', 目录路径)

app.get('/', function (req, res) {
    // Express 为Response提供了一个方法：render
    // render 方法默认是不可以使用，但是如果配置了模板引擎就可以使用
    // res.render('html模板名', {模板数据})
    // 第一个参数不能写路径，默认回去项目中views目录查找该模板文件
    // 约定视图文件都放在views目录中!!
    res.render('index.html', {
        comments: comments
    }) 
})

// 进入评论界面
app.get('/post', function (req, res) {
    res.render('post.html')
})

// 发表评论
app.post('/post', function (req, res) {

    // 1. 获取表单POST请求体数据
    // 2. 处理
    // 3. 发送响应
    // console.log(req.body, 1111)
    var obj = req.body
    obj.dateTime = '2017-11-2'
    comments.unshift(obj)
    res.redirect('/')  // 会自动结束响应
    
    // req.query 只能拿到get请求参数
})

// // 发表评论
// app.get('/pinglun', function (req, res) {
//     var obj = req.query
//     obj.dateTime = '2017-11-2'
//     comments.unshift(obj)
//     // 重定向
//     res.redirect('/')
//     // res.statusCode = 302
//     // res.setHeader('Location', '/')
//     // res.send()
// })

// 404
app.use(function(req, res, next) {
    res.status(404).send(data);
  });

app.listen(3000, function() {
    console.log('app is running at port 3000')
})




    // Node 不适合从来没有接触过服务端的人学习
    // 如果向真正的学好服务端，还是java、php
    // Node 不适合入门服务端，不代表Node不强大
    // 不适合新手的原因是偏低层，不太灵活
    // java、php屏蔽了一些底层，好入门'